package org.helgoboss.project_data

import java.net.URL
import java.io.File

trait ProjectData {
    val sourceCode: String
    val projectId: ProjectId
    val sourceFile: Option[File]
    val name: Option[String]
    val description: Option[String]
    val dependencies: Set[DependencyId]
    val bundleActivator: Option[String]
    val parentProjectId: Option[ProjectId]
    val commandletId: Option[String]
    val obrRepositories: Set[URL]
    val obrResources: Set[ObrResourceId]
}

trait ObrResourceId {
    val symbolicName: String
    val version: String
}

trait ProjectId {
    val groupId: String
    val artifactId: String
    val version: String
}

trait DependencyId {
    val groupId: String
    val artifactId: String
    val version: String
    val `type`: String
}